package principal;

import java.io.File;
import java.io.IOException;
import java.util.Vector;

import objetsRadar.Traitement;

import modelesObjet.ModeleListeDonnees;

public class ListeDonnees implements ModeleListeDonnees {

	public ListeDonnees(Vector<Double> vec) {
		vecDonnees = vec;
	}

	@Override
	public Vector<Double> getVecteurDonnees() {
		return vecDonnees;
	}

	public static ListeDonnees getListeDonnees(File fichier, int type) {
		ListeDonnees listeDonnees;
		try {
			listeDonnees = new ListeDonnees(Traitement.lireFichier(
					fichier.getName(), type));
		} catch (IOException e) {
			if (fichier.exists()) {
				System.err.println("Fichier " + fichier.getName()
						+ " corrompu.");
			}
			listeDonnees = null;
		}
		return listeDonnees;
	}

	public static Vector<Double> additionneDonnees(Vector<Double> vecDonnees1,
			Vector<Double> vecDonnees2) {
		Vector<Double> vecTmp = new Vector<Double>();
		/*
		 * Traitement du cas où les 2 vecteurs ne sont pas de même taille (ça ne
		 * doit pas arriver normalement)
		 */
		if (vecDonnees1.size() != vecDonnees2.size()) {
			return null;
		}
		/*
		 * Addition des 2 vecteurs
		 */
		for (int i = 0; i < vecDonnees1.size(); i++) {
			vecTmp.add(vecDonnees1.get(i) + vecDonnees2.get(i));
		}

		return vecTmp;
	}

	/*
	 * Divise chaque donnée du vecteur par l'entier length
	 */
	public static Vector<Double> diviseDonnees(Vector<Double> vecDonnees,
			int length) {
		Vector<Double> vecTmp = new Vector<Double>();
		for (Double donnees : vecDonnees) {
			vecTmp.add(donnees / length);
		}

		return vecTmp;
	}

	private Vector<Double> vecDonnees;
}
